package test.net.sourceforge.pmd.rules;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.Report;
import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.RuleSet;
import net.sourceforge.pmd.RuleViolation;
import net.sourceforge.pmd.rules.XPathRule;
import test.net.sourceforge.pmd.testframework.RuleTst;
import java.io.StringReader;
/**
* @author daniels
*/
public class XPathRuleTest extends RuleTst {
XPathRule rule;
public void setUp() {
rule = new XPathRule();
rule.setMessage("XPath Rule Failed");
}
public void testPluginname() throws Throwable {
Rule rule = new XPathRule();
rule.addProperty("xpath", "//VariableDeclaratorId[string-length(@Image) < 3]");
rule.setMessage("{0}");
rule.addProperty("pluginname", "true");
PMD p = new PMD();
RuleContext ctx = new RuleContext();
Report report = new Report();
ctx.setReport(report);
ctx.setSourceCodeFilename("n/a");
RuleSet rules = new RuleSet();
rules.addRule(rule);
p.processFile(new StringReader(TEST1), rules, ctx);
RuleViolation rv = (RuleViolation)report.iterator().next();
assertEquals("a", rv.getDescription());
}
private static final String TEST1 =
"public class Foo {" + PMD.EOL +
" int a;" + PMD.EOL +
"}";
}